home *** CD-ROM | disk | FTP | other *** search
- Here are some ideas I collected from some emails by my alpha/beta testers.
- The testers names are:
-
- magr2112@hem2.passagen.se (Mats Granstrom)
- raresoft@rz.fh-augsburg.de (Ralph Reuchlein)
- shining@braunschweig.netsurf.de (Thomas Fricke)
- andre@melior.s.bawue.de (André Schenk)
- klaus@melior.s.bawue.de (Klaus Gessner)
- 00060099@southnet.de (Markus Göttler)
- oliver.roberts@iname.com (Oliver Roberts)
-
- and of course me: gutmann@informatik.uni-freiburg.de (Steffen Gutmann)
-
- * Programming function for deleting all records of a table.
-
- * (LASTPOS substr string) which returns the position of the string
- where the last substr appears in it.
-
- * (COPIES string number) for returning a string of 'number' times
- the contents of 'string'.
-
- * new flag in the New/Change attribute requester that disables
- changing the project's number-of-changes value.
-
- * Display record trigger function
-
- * Larger max number of characters for string attributes.
-
- * Direct expressions for virtual attributes instead of function entries.
-
- * (EVAL <str-expr>) for programming MUIbase.
-
- * Image kind for virtual attributes.
-
- * Memo kind for virtual attributes.
-
- * Jump-to-key feature for virtual attributes of list kind.
-
- * Improve display listview by adding arrows to each entry like ListTree does.
-
- * Use keypad keys for special purposes.
-
- * Progress indicator when ordering records.
-
- * Load window button images at program start.
-
- * Some kind of load/save of filters. Maybe in a "MUI-pulldown-menu".
-
- * Prevent users from changing the structure of a database.
- [Planned are Password protection for project and structure].
-
- * Select-from-where query optimization
-
- The select-from-where query is currently not optimized. E.g. imagine the
- following situation: a relation called Person has about 1000 records and
- you want to run the following query:
-
- SELECT a.Name, b.Name FROM Person a, Person b
- WHERE (AND (= a.Name "Steffen") (= b.Name "Mats"))
-
- Don't try to find any sense in this query :-)
-
- Now the query command builds the cross product of 1000 x 1000 records
- = 1 000 000 tuples to examine! This will take many hours.
- But if you examine the WHERE expression you see that
- (= a.Name "Steffen") only depends on records from Person a and
- (= b.Name "Mats") only depend on records from Person b, so
- you could first check the expression (= a.Name "Steffen")
- for all records of Person a and (= b.Name "Mats") for
- all records of Person b and then build the cross product.
- This way you only need to check 1000 + 1000 = 2000 tuples.
- Thus the running time has been improved from n² to 2n
- where n is the number of records of relation Person.
- I already have an idea how to optimize the select-from-where query
- for arbitrary WHERE expressions that consists of AND, OR and NOT expressions.
-
- * Allow Ordering on reference attributes.
-
- * Apply changes made to choice labels to all existing records.
-
- * Mask/Display editor with Drag 'n Drop.
-
- * New data type: Selection for selecting n items out of m items.
-
- * Context menu item "Search for" for editor fields.
-
- * Optional log file where all changes are written in ASCII to.
-
- * Copy & Paste of several attributes.
-
- * Hotlist for program output and query print requester.
-
- * Indices.
-
- * More features for preprocessor (Macros, conditional compilation)
-
-
- --- Ideas & suggestions which will have to wait ---
-
- * Foreground colors for text objects.
-
- Problem: MUI's current approach for setting the foreground color
- in Text objects is limited to only 8 pen numbers, and these pen
- numbers may refer to only a subset of 8 colors, e.g. on my system
- they refer to only 4 real colors.
-
- * Special functions support
- I know that you would not build in special functions e.g. for
- mathematical functions like arsinh() and so on. But for some
- special databases this would be nice. Is there any possibility
- to implement an interface for self written function libraries?
- AREXX demonstrates this ability: with addlib() you can load in
- an AREXX library and you can use its functions like a
- implemented function. What do you think about that?
-
- I don't know how to implement this for now. Maybe a C interface and
- a linkable object module would solve it. However I would really prefer
- the ARexx solution (of course an improved one compared to AmigaBase).
- I am thinking about an (RX pattern ...) function that returns a string
- containing the result of the ARexx command.
-
- An idea that could work is to use a shared library with a well
- defined interface. The user provides the library, registers it
- by calling a MUIbase function, MUIbase calls an init function to
- know about all available functions of the library, and then the user
- can call functions from the library.
-
- * How about this: Add a menu point to the context specific textfield
- menu which pops up a window with two lists of relations and their
- attributes. The left list contains the relations and the right one
- the depending attributes like the relations and attribute lists in
- the structure editor. Selecting one attribute will insert the full
- relation path into the textfield. At the moment I must have a
- photographic mind to remember the relations with their attributes.
-
- I don't know how I can implement this with MUI 3.8. The editor menu
- is a context menu and in 3.8 context menus are limited to only
- one toplevel menu. I don't want to put all relation names in the
- toplevel menu. I could add a menu item "Insert attribute/relation name"
- to the toplevel menu and pop up a window with all relations and attributes.
- But this solution is not user friendly because context menus can't have
- shortcuts and you would have to use the mouse the whole time.
- I will wait how MUI will handle context menus in the future.
-
- * Context menu for relations?
-
- I will wait how context menus are implemented in MUI > 3.8.
-
- * Use ListTree for the display list.
-
- Currently ListTree does not support multi-selection. So adding
- a group object to the display list by multi-selecting some objects
- for being the childs of the new group and pressing the "Group"
- button will not be possible. I will wait until ListTree supports
- multi-selection.
-
- --- Ideas I am not going to implement:
-
- * Autosave
-
- Reasons:
-
- o Saving from time to time is a very simple task.
- o You can't remember the last time your computer autosaved your projects.
- o The computer may save in an inconsistent state, e.g. imagine
- you manage two bank accounts and would like to transfer
- money from one account to the other. If the autosave feature
- saves your project after you made the transaction for one account
- but not for the other one then you have saved an inconsistent
- database project.
-